/* 
 * File:   Cell.h
 * Author: yuu
 *
 * Created on September 6, 2011, 6:24 PM
 */

#include <list>
using namespace std;
#ifndef CELL_H
#define	CELL_H

class Cell {
public:
    Cell();
    Cell(const Cell& orig);
    Cell(int x,int y);
    virtual ~Cell();
    /**
     * action triggered when a player stops on the cell
     * @param p
     */
    void LandAction(class Player& p);
    /**
     * action triggered when a player pass on the cell
     * @param p
     */
    void Action(class Player& p);
    /**
     * remove a cell to neighborhood
     * @param c
     */
    void AddNeighb(Cell& c);
    /**
     * add a cell to neighborhood
     * @param c
     */
    void RmNeighb(Cell& c);
private:
    /** 
     * horizontal position on the board
     */
    int x;
    /**
     * vertical position on the board
     */
    int y;
    /**
     * list of reachable cells
     */
    list<Cell *> neighb;
};

#endif	/* CELL_H */

